# class Foo(object):
#     def __init__(self, num):
#         self.num = num
#
#
# # v1 = [Foo for i in range(10)]
# v2 = [Foo(5) for i in range(3)]
# v3 = [Foo(i) for i in range(3)]
# #
# # print(v1)
# print(v2)
# # print(v3)
# #
# class Foo:
#     pass

# obj = Foo()
# obj1 = Foo()
# print(obj,obj1)
# print(Foo())
# print(Foo())
# print(Foo())

# print([Foo() for i in range(3)])
'''
运用类完成一个扑克牌类(无大小王)的小游戏：
用户需要输入用户名，以下为用户可选选项:
    1. 洗牌
    2. 随机抽取一张
    3. 指定抽取一张
    4. 从小到大排序
    5. 退出

1. 洗牌：每次执行的结果顺序随机。
2. 随机抽取一张：显示结果为：太白金星您随机抽取的牌为：黑桃K
3. 指定抽取一张：
    用户输入序号（1~52）
    比如输入5，显示结果为：太白金星您抽取的第5张牌为：黑桃A
4. 将此牌从小到大显示出来。A -> 2 -> 3 .......-> K

提供思路：
    52张牌可以放置一个容器中。
    用户名，以及盛放牌的容器可以封装到对象属性中。
'''
import random

class Poker:

    rank =['A'] + [str(i) for i in range(2, 11)] + list('JQK')
    color = '黑桃 红心 方片 梅花'.split()

    def __init__(self, username):
        self.username = username
        self.cards = [(c,r) for c in self.color for r in self.rank]

    def shuffle(self):
        random.shuffle(self.cards)
        return self.cards

    def _random(self):
        card = random.choice(self.cards)
        return f'{self.username}您随机抽取的牌为：{card[0]}{card[1]}'

    def appoint(self):
        num = input('请输入选项:').strip()
        card = self.cards[int(num)-1]
        return f'{self.username}您抽取的第{num}张牌为：{card[0]}{card[1]}'


    def sort(self):
        self.sort_cards = [(c,r) for r in self.rank for c in self.color]
        return self.sort_cards

    def exit_out(self):
        exit('成功退出程序')



def main():
    choice_dict = {
        1: Poker.shuffle,
        2: Poker._random,
        3: Poker.appoint,
        4: Poker.sort,
        5: Poker.exit_out,
    }
    while 1:
        username = input('请输入用户名:').strip()
        obj = Poker(username)
        print(
            '''
            1. 洗牌
            2. 随机抽取一张
            3. 指定抽取一张
            4. 从小到大排序
            5. 退出
            ''')
        choice_num = input('请输入选项:').strip()  # 1
        print(choice_dict[int(choice_num)](obj))







if __name__ == '__main__':
    main()